import 'package:get/get.dart';
import 'package:hive/hive.dart';

typedef ObjItem = Map<String, dynamic>;

// 全局状态管理：密码分类列表
class TypeListProvider extends GetxController {
  var box = Hive.box<ObjItem>(name: "type"); // 打开存储密码分类的HiveBox
  var list = <ObjItem>[].obs; // 密码分类列表

  // 获取分类列表
  List<ObjItem> getAllType() {
    var li = box.getAll(box.keys);
    // 根据sort属性来排序
    if (li.length > 1) li.sort((a, b) => (a!["sort"] as int).compareTo(b!["sort"] as int));
    return li as List<ObjItem>;
  }

  // 设置默认分类
  List<ObjItem> setDefaultType() {
    if (box.isEmpty) {
      box.put("defaultType", {
        "id": "defaultType",
        "sort": 0,
        "name": "默认分类",
        "icon": "60556",
        "fontFamily": "MaterialIcons",
      });
    }
    return getAllType();
  }

  @override
  void onInit() async {
    super.onInit();
    list.value = setDefaultType();
  }
}
